package org.dromara.common.core.service;

/**
 * 通用 label键值缓存 Service
 *
 * @author: lus
 * @date: 2024/12/19 15:19
 */
public interface ComboboxService {

    /**
     * 获取 Label 缓存
     * @param cacheName 缓存key
     * @param key 键值
     *
     * @return String label
     */
    String queryLabel(String cacheName, String key);

    /**
     * 获取多个 Label 缓存
     * @param cacheName 缓存key
     * @param keys 键值
     *
     * @return String label
     */
    String queryLabels(String cacheName, String keys);

    void syncLabelCache(String cacheName, String keyFieldValue);

    /**
     * 同步 Label 缓存
     *
     * @param cacheName 缓存key
     * @param parentKeyField 父级键字段
     * @param keyField 键字段
     * @param valueField 值字段
     * @param parentKeyFieldValue 父级键值
     * @param keyFieldValue 键值
     * @param valueFieldValue 值
     */

    void syncLabelCache(String cacheName, String parentKeyField, String keyField, String valueField,
                        String parentKeyFieldValue, String keyFieldValue, String valueFieldValue);

}
